package com.glodon.ggzy.fwpt.service;

import java.util.Date;
import java.util.List;

import com.glodon.ggzy.core.model.Page;
import com.glodon.ggzy.core.utils.PageSearchModel;
import com.glodon.ggzy.entity.GgJsLaw;
import com.glodon.ggzy.entity.GgJsProjectInfo;
import com.glodon.ggzy.entity.GgJsSchedule;
import com.glodon.ggzy.entity.GgJsTenderNotice;
import com.glodon.ggzy.entity.GgJsWinningPublic;
import com.glodon.ggzy.vo.JgptJsgcDetail;

/**
 * 
 * 建设工程处理Service接口
 * @author yangjf
 * @date 2013/06/11
 */
public interface IJsgcProjectService {

	/**
	 * 
	 * 查询建设工程项目信息
	 * @param queryModel
	 * @param
	 * @return
	 */
	public Page queryJsgcProjectInfo(PageSearchModel queryModel, String projectName);

	/**
	 * 
	 * 根据ID获取实体对象
	 * @param id
	 * @return
	 */
	public GgJsProjectInfo getGgJsProjectInfoById(String id);

	/**
	 * 
	 * 根据项目ID获取招标公告实体类
	 * @param projectId
	 * @param noticeType
	 * @return
	 */
	public GgJsTenderNotice getGgJsTenderNoticeByProjId(String projectId);

	/**
	 * 
	 * 根据项目ID和公告类型获取招标公告实体类
	 * @param projectId
	 * @param noticeType
	 * @return
	 */
	public GgJsTenderNotice getGgJsTenderNoticeByIdAndType(String projectId, String noticeType);

	/**
	 * 
	 * 根据项目ID获取中标公示实体类
	 * @param projectId
	 * @return
	 */
	public GgJsWinningPublic getGgJsWinningPublicByProjId(String projectId);

	/**
	 * 
	 * 根据ID获取实体类
	 * @param id
	 * @return
	 */
	public GgJsTenderNotice getGgJsTenderNoticeById(String id);

	/**
	 * 
	 * 查询建设工程招标公告信息
	 * @param queryModel
	 * @param noticeName
	 * @return
	 */
	public Page queryJsgcTenderNotice(PageSearchModel queryModel, String noticeName);

	/**
	 * 
	 * 查询建设工程中标公示信息
	 * @param queryModel
	 * @param projectName
	 * @return
	 */
	public Page queryJsgcWinningPublic(PageSearchModel queryModel, String projectName);

	/**
	 * 
	 * 根据ID获取中标公示实体类
	 * @param id
	 * @return
	 */
	public GgJsWinningPublic getGgJsWinningPublicById(String id);

	/**
	 * 
	 * 查询建设工程法律法规信息
	 * @param queryModel
	 * @param lawName
	 * @return
	 */
	public Page queryGgJsLaw(PageSearchModel queryModel, String lawName);

	/**
	 * 
	 * 根据ID获取法律法规实体类
	 * @param id
	 * @return
	 */
	public GgJsLaw getGgJsLawById(String id);

	/**
	 * 
	 * 查询建设工程行政处理信息
	 * @param queryModel
	 * @param noticeName
	 * @return
	 */
	public Page queryJsgcXzclInfo(PageSearchModel queryModel, String noticeName);

	/**
	 * 
	 * 获取经过拼图
	 * @param begin
	 * @param end
	 * @return
	 */
	public List<JgptJsgcDetail> getJgptJsgcData(Date begin, Date end);

	/**
	 * 获取项目时间信息
	 * @param prjId
	 * @return
	 */
	public List<GgJsSchedule> queryJsgcScheduleInfo(String prjId);

	/**
	 * 
	 * 获取项目类型名称
	 * @param code
	 * @return
	 */
	public String getProjectTypeByCode(String code);

	/**
	 * 
	 * 获取是否联合体投标名称
	 * @param code
	 * @return
	 */
	public String getJointBiddingByCode(String code);

}
